/**
 * @file     Types.h
 * @brief    Responsible to encapsulate the types of titere
 *
 * @author   Franco Riberi
 * @email    fgriberi AT gmail.com
 *
 * Contents: Header file for titere
 *
 * System:   titere: Target Ideal TEmperature Rna Expression
 * Language: C++
 *
 * @date February 3, 2015
 *
 * Copyright (C) 2015 Franco Riberi, FuDePAN
 *
 * This file is part of the titere.
 *
 * Titere is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Titere is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with titere. If not, see <http://www.gnu.org/licenses/>.
 *
 */

#ifndef TYPES_H
#define TYPES_H

namespace NSTitere
{

/**
 * @brief Represents a temperature data
 */
typedef double Temperature;


/**
 * @brief Represents a nucleotid
 */
typedef char Nucleotide;

/**
 * @brief Represents a position in the sequence
 */
typedef size_t Position;

/**
 * @brief Represents tha amount of nucleotids
 */
typedef size_t NucleotidsAmount;

/**
* @brief Represents an input option
*/
typedef std::string OptionUsage;

/**
* @brief Structure that represents all input data needed to run titere
*/
struct TitereInputArgs
{
    OptionUsage fileNameRNAm;
    OptionUsage folder;
    Temperature initialRangeTemp;
    Temperature finalRangeTemp;
    OptionUsage typeSearch;
    size_t lengthTolerance;
    bool circular;
    bool help;
};

} // namespace NSTitere
#endif /* TYPES_H */